﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HA.MT3DMS.DomainLayer
{
    [Serializable]
    public class MTStressPeriod:ICloneable
    {

        public MTStressPeriod()
        {
 
        }


        public MTStressPeriod(double length,int steps)
        {
            this._PERLEN = length;
            this._NSTP = steps;


 
        }




        double _PERLEN = 1.0;

        /// <summary>
        /// 周期长度
        /// </summary>
        public double PERLEN
        {
            get { return _PERLEN; }
            set { _PERLEN = value; }
        }

        int _NSTP = 10;

        /// <summary>
        /// 时间步数
        /// </summary>
        public int NSTP
        {
            get { return _NSTP; }
            set { _NSTP = value; }
        }

        double _TSMULT = 1.0;

        public double TSMULT
        {
            get { return _TSMULT; }
            set { _TSMULT = value; }
        }


        double _transStepSize=1;

        public double TransStepSize
        {
            get { return _transStepSize; }
            set { _transStepSize = value; }
        }

        int _maxTransSteps=1000;

        public int MaxTransSteps
        {
            get { return _maxTransSteps; }
            set { _maxTransSteps = value; }
        }

        double _transStepMultiplier=1;

        public double TransStepMultiplier
        {
            get { return _transStepMultiplier; }
            set { _transStepMultiplier = value; }
        }

        double _maxTransStepSize=0;

        public double MaxTransStepSize
        {
            get { return _maxTransStepSize; }
            set { _maxTransStepSize = value; }
        }


        public object Clone()
        {
            return this.MemberwiseClone();
        }


        //public static bool operator ==(MTStressPeriod sp1,MTStressPeriod sp2)
        //{
        //    if (sp1._NSTP != sp2._NSTP || sp1._PERLEN != sp2._PERLEN || sp1._TSMULT != sp2._TSMULT)
        //    {
        //        return false;

        //    }
        //    else
        //    {
        //        return true;
        //    }

        //}

        //public static bool operator !=(MTStressPeriod sp1, MTStressPeriod sp2)
        //{
        //    if (sp1._NSTP != sp2._NSTP || sp1._PERLEN != sp2._PERLEN || sp1._TSMULT != sp2._TSMULT)
        //    {
        //        return true;

        //    }
        //    else
        //    {
        //        return false;
        //    }

        //}

    }
}
